package com.youdianstar.app.common.util

/**
 * API请求上下文管理器
 * 用于在异常处理时获取请求的上下文信息（URL、方法、参数等）
 */
object ApiRequestContext {
    private val requestContext = ThreadLocal<RequestInfo?>()
    
    /**
     * 请求信息数据类
     */
    data class RequestInfo(
        val url: String,
        val method: String,
        val params: Map<String, Any?>? = null,
        val requestBody: String? = null,
        val apiName: String? = null
    )
    
    /**
     * 设置当前请求的上下文信息
     */
    fun setContext(info: RequestInfo) {
        requestContext.set(info)
    }
    
    /**
     * 获取当前请求的上下文信息
     */
    fun getContext(): RequestInfo? {
        return requestContext.get()
    }
    
    /**
     * 清除当前请求的上下文信息
     */
    fun clearContext() {
        requestContext.remove()
    }
}

